import { defineConfig,loadEnv } from 'vite'
import react from '@vitejs/plugin-react-swc'
import { resolve } from 'path'
import compressPlugin from 'vite-plugin-compression'

// https://vite.dev/config/
export default defineConfig(({mode})=>{
  // 获取环境变量  mode 表示当前的环境  process.cwd()表示当前目录
  const env = loadEnv(mode, process.cwd(),'')
  return {
    plugins: [
      react(),
      mode === "production" && compressPlugin({
        ext: '.gz',  // 压缩之后的文件的后缀名
        algorithm: 'gzip', // 压缩算法
        threshold:10240,  // 文件大小大于这个值的时候才进行压缩
        deleteOriginFile:false, // 是否删除源文件
      })
    ],
    // 定义当前的环境变量
    define:{
      'process.env':env
    },
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src'),
      }
    },
    // 服务配置
    server:{
      port:3000, // 自定义项目端口号
      open:true, // 启动项目自动打开浏览器
      proxy:{ // 代理配置(跨域)  浏览器的同源策略(任意网站之间的协议,域名,端口号只要有一个不同,就是不同源)限制的
        "/api":{
          target:env.VITE_API_URL,
          changeOrigin:true, // 允许跨域
          rewrite:(path)=>path.replace(/^\/api/,'')  // 路径重置
        }
      }
    }
  }
})
